package Collection;

import java.util.LinkedList;
import java.util.Queue;

/**
 * 队列 java.util.Queue接口
 * Queue继承自Collection
 *  队列可以保存一组元素，但是存取元素必须遵循先进先出原则:FIFO
 *   First Input First Output
 *   常用实现类:LinkedList
 * */

public class QueueDemo {
    public static void main(String[] args) {
           Queue<String> queue= new LinkedList<>();
           queue.offer("one");
           queue.offer("two");
           queue.offer("three");
           queue.offer("four");
           queue.offer("five");
        System.out.println(queue);
        String  str=queue.poll();
        /**
         * E poll()
         * 出队操作, 获取并删除对首的元素
         * */


        System.out.println(str);
        System.out.println(queue);
        /**
         * E peak()
         * 引用对首元素,获取该元素后并不会从队列中删除
         * */
        str = queue.peek();
        System.out.println(str);
        System.out.println(queue);
        int size =queue.size();
        System.out.println("size"+size);
        //遍历并不会做出队操作
        for(String e : queue) {
            System.out.println(queue);
        }
            //使用poll遍历(一次性的)
           while (queue.size()>0){
               String s = queue.poll();
               System.out.println(s);
            }


        System.out.println(queue);
    }
}
